/**
 * 
 */
package cl.duocap.refaxion.view.bean;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import cl.duocap.refaxion.dto.RepuestoDTO;
import cl.duocap.refaxion.dto.TipoRepuestoDTO;
import cl.duocap.refaxion.servicios.RepuestoService;

/**
 * @author rentonx
 *
 */
@ManagedBean(name="formRepuestoBean")
@SessionScoped
public class FormRepuestoBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private RepuestoDTO repuestoNuevo = new RepuestoDTO();
	private List<TipoRepuestoDTO> listaTipoRepuestosObtenida;
	private Map<String,Integer> listaTipoRepuestosCombo;

	/**
	 * 
	 */
	@PostConstruct
	public void iniciar(){
		if(FacesContext.getCurrentInstance().isPostback()){
			return;
		}
		
		RepuestoService repuesto = new RepuestoService();
		setListaTipoRepuestosObtenida(repuesto.obtenerTiposRepuestos());
		
		listaTipoRepuestosCombo = new LinkedHashMap<String, Integer>();
		for (TipoRepuestoDTO t : listaTipoRepuestosObtenida) {
			listaTipoRepuestosCombo.put(t.getNombreTipoRepuesto(), t.getIdTipoRepuesto());
		}
		
	}
	
	public String registrarRepuestoNuevo(){
		
		SimpleDateFormat dateformatJava = new SimpleDateFormat("dd-MM-yyyy");
		repuestoNuevo.setFechaIngreso(dateformatJava.format(repuestoNuevo.getFechaIngresoTrans()));
		
		RepuestoService repuestoIngresar = new RepuestoService();
		if(repuestoIngresar.registrarRepuestoNuevo(repuestoNuevo)){
			return "mainRepuesto.xhtml?faces-redirect=true";
		}else{
			return "formRepuesto.xhtml?faces-redirect=true";
		}
		
	}
	
	public FormRepuestoBean() {
	
	}

	public RepuestoDTO getRepuestoNuevo() {
		return repuestoNuevo;
	}

	public void setRepuestoNuevo(RepuestoDTO repuestoNuevo) {
		this.repuestoNuevo = repuestoNuevo;
	}

	public Map<String,Integer> getListaTipoRepuestosCombo() {
		return listaTipoRepuestosCombo;
	}

	public void setListaTipoRepuestosCombo(Map<String,Integer> listaTipoRepuestosCombo) {
		this.listaTipoRepuestosCombo = listaTipoRepuestosCombo;
	}

	public List<TipoRepuestoDTO> getListaTipoRepuestosObtenida() {
		return listaTipoRepuestosObtenida;
	}

	public void setListaTipoRepuestosObtenida(
			List<TipoRepuestoDTO> listaTipoRepuestosObtenida) {
		this.listaTipoRepuestosObtenida = listaTipoRepuestosObtenida;
	}

}
